{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "4a9a6c2b-f8b5-4731-bc1c-dc46a680cb79",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import os\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "import matplotlib.pyplot as plt\n",
    "from statsmodels.tsa.stattools import acf\n",
    "import numpy as np\n",
    "\n",
    "import matplotlib\n",
    "matplotlib.rcParams['pdf.fonttype'] = 42\n",
    "matplotlib.rcParams['ps.fonttype'] = 42"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b517109a-1bc1-42aa-b962-9509200aa6dc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_raw = pd.read_csv('dataset/ETTh1.csv')\n",
    "scaler = StandardScaler()\n",
    "cols_data = df_raw.columns[1:]\n",
    "df_data = df_raw[cols_data]\n",
    "\n",
    "train_data = df_data[:12*30*24]\n",
    "scaler.fit(train_data.values)\n",
    "data = scaler.transform(df_data.values)\n",
    "\n",
    "train_data = data[:12*30*24]\n",
    "test_data = data[16*30*24:20*30*24]\n",
    "\n",
    "\n",
    "acf_values = acf(train_data[:,0], nlags=200)\n",
    "\n",
    "\n",
    "lags = np.arange(len(acf_values))\n",
    "plt.figure(figsize=(3, 2.5))\n",
    "plt.bar(lags, acf_values)\n",
    "\n",
    "plt.xlim([0, 200])\n",
    "plt.ylim([0, 1])\n",
    "\n",
    "plt.xlabel(\"Lags\", fontsize=10)\n",
    "plt.ylabel(\"Autocorrelation\", fontsize=10)\n",
    "\n",
    "plt.grid(True)\n",
    "plt.savefig('acf/etth1[0].pdf', bbox_inches='tight')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1b5968fb-2cea-4b3b-ad7b-69c4944e8f22",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "edd883bb-b5b5-40a0-8817-bbb6d521761b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_raw = pd.read_csv('dataset/ETTh2.csv')\n",
    "scaler = StandardScaler()\n",
    "cols_data = df_raw.columns[1:]\n",
    "df_data = df_raw[cols_data]\n",
    "\n",
    "train_data = df_data[:12*30*24]\n",
    "scaler.fit(train_data.values)\n",
    "data = scaler.transform(df_data.values)\n",
    "\n",
    "train_data = data[:12*30*24]\n",
    "test_data = data[16*30*24:20*30*24]\n",
    "\n",
    "\n",
    "acf_values = acf(train_data[:,6], nlags=200)\n",
    "\n",
    "\n",
    "lags = np.arange(len(acf_values))\n",
    "plt.figure(figsize=(3, 2.5))\n",
    "plt.bar(lags, acf_values)\n",
    "\n",
    "plt.xlim([0, 200])\n",
    "plt.ylim([0.6, 1])\n",
    "\n",
    "plt.xlabel(\"Lags\", fontsize=10)\n",
    "plt.ylabel(\"Autocorrelation\", fontsize=10)\n",
    "\n",
    "plt.grid(True)\n",
    "plt.savefig('acf/etth2[6].pdf', bbox_inches='tight')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "22fbe053-5889-4d78-8b24-de687d941da5",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "47a73734-6c37-4241-b2db-289ba5daf64e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "171726c0-f4a4-4e21-aa2d-44c5f37606a0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_raw = pd.read_csv('dataset/ETTm1.csv')\n",
    "scaler = StandardScaler()\n",
    "cols_data = df_raw.columns[1:]\n",
    "df_data = df_raw[cols_data]\n",
    "\n",
    "train_data = df_data[:12*30*24*4]\n",
    "scaler.fit(train_data.values)\n",
    "data = scaler.transform(df_data.values)\n",
    "\n",
    "train_data = data[:12*30*24*4]\n",
    "test_data = data[16*30*24*4:20*30*24*4]\n",
    "\n",
    "\n",
    "acf_values = acf(train_data[:,0], nlags=200)\n",
    "\n",
    "\n",
    "lags = np.arange(len(acf_values))\n",
    "plt.figure(figsize=(3, 2.5))\n",
    "plt.bar(lags, acf_values)\n",
    "\n",
    "plt.xlim([0, 200])\n",
    "plt.ylim([0, 1])\n",
    "\n",
    "plt.xlabel(\"Lags\", fontsize=10)\n",
    "plt.ylabel(\"Autocorrelation\", fontsize=10)\n",
    "\n",
    "plt.grid(True)\n",
    "plt.savefig('acf/ettm1[0].pdf', bbox_inches='tight')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "16275861-8387-4713-9684-5fca3ae79c3f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "335d2fa0-88a4-46f5-9df8-5a0de441d888",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_raw = pd.read_csv('dataset/ETTm2.csv')\n",
    "scaler = StandardScaler()\n",
    "cols_data = df_raw.columns[1:]\n",
    "df_data = df_raw[cols_data]\n",
    "\n",
    "train_data = df_data[:12*30*24*4]\n",
    "scaler.fit(train_data.values)\n",
    "data = scaler.transform(df_data.values)\n",
    "\n",
    "train_data = data[:12*30*24*4]\n",
    "test_data = data[16*30*24*4:20*30*24*4]\n",
    "\n",
    "\n",
    "acf_values = acf(train_data[:,6], nlags=200)\n",
    "\n",
    "\n",
    "lags = np.arange(len(acf_values))\n",
    "plt.figure(figsize=(3, 2.5))\n",
    "plt.bar(lags, acf_values)\n",
    "\n",
    "plt.xlim([0, 200])\n",
    "plt.ylim([0.7, 1])\n",
    "\n",
    "plt.xlabel(\"Lags\", fontsize=10)\n",
    "plt.ylabel(\"Autocorrelation\", fontsize=10)\n",
    "\n",
    "plt.grid(True)\n",
    "plt.savefig('acf/ettm2[6].pdf', bbox_inches='tight')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6356b8dd-1782-45ba-90a4-ccc487518d54",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "3cd63f25-4928-464c-a2fd-ad8b2e4e67a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAATwAAAEFCAYAAAB+cFtjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8WgzjOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqLklEQVR4nO3deVhU9f4H8PcMDgOYiIosEgbuooKEQWT+zBxEr1Gkdd1KItPrgplTmnSVJUvIlHBBfdJMfUqlLKlcMMQGr4obiOVaml5yAVQuDoIOA/P9/WGMDAwwB86s5/N6Hh4937N8Px/mnA9n5pzzHRFjjIEQQgRAbO4ACCHEVKjgEUIEgwoeIUQwqOARQgSDCh4hRDCo4BFCBIMKHiFEMKjgEUIEgwoeIUQwqOARQgTDrAXv4MGDiIiIQJcuXSASiZCRkdHsOgqFAk8++SSkUil69OiBTZs2GT1OQohtMGvBq6ioQEBAANLS0gxa/sqVKxg9ejSGDRuGgoICvPPOO3jrrbewb98+I0dKCLEFIksZPEAkEmHnzp2IjIxsdJn3338fu3fvxpkzZ7Rt48ePR1lZGTIzM00QJSHEmrUxdwBc5ObmQiaT6bSFh4fjnXfeaXQdlUoFlUqlndZoNCgtLUWnTp0gEomMFSohpIUYYygvL0eXLl0gFvP7JtSqCl5RURHc3d112tzd3aFUKnH//n04Ojo2WCcpKQmJiYmmCpEQwpO//voLjz/+OK/btKqC1xKxsbGQy+Xa6bt376Jr1674/fff0bFjRzNGZlxqtRq//PILhg0bBolEYu5wjEoouQolz9LSUvTq1Qvt2rXjfdtWVfA8PDxQXFys01ZcXAxnZ2e9Z3cAIJVKIZVKG7R37NgRnTp1MkqclkCtVsPJyQmdOnWy6YMDEE6uQsmzljE+crKq+/BCQ0ORnZ2t05aVlYXQ0FAzRUQIsSZmLXj37t1DQUEBCgoKADy87aSgoACFhYUAHr4dnTx5snb56dOn488//8T8+fNx4cIFrFmzBt988w3mzp1rjvAJIVbGrAXv5MmTCAwMRGBgIABALpcjMDAQcXFxAICbN29qix8A+Pr6Yvfu3cjKykJAQACWL1+ODRs2IDw83CzxE0Ksi1k/w3vuuefQ1G2A+p6ieO6553Dq1CkjRkUIsVVW9RkeIYS0BhU8QohgCLbghSRlN78QIcSmCLbgEUKEhwoeIUQwqOARQgSDCh4hRDCo4BFCBIMKHiFEMKjgEUIEgwoeIUQwqOARQgSDCh4hRDCo4BFCBEPQBc9nwW5zh0AIMSFBFzxCiLBQwSOECAYVPEKIYFDBI4QIBhU8QohgUMEjhAgGFTxCiGBQwSOECAYVPEKIYFDBI0TAhPa0ERU8QohgCL7gCe0vHCFCJviCRwgRDrMXvLS0NPj4+MDBwQEhISE4fvx4k8unpqaid+/ecHR0hLe3N+bOnYsHDx6YKFpCbEftuxshvcsxa8FLT0+HXC5HfHw88vPzERAQgPDwcJSUlOhdfuvWrViwYAHi4+Nx/vx5fPHFF0hPT8cHH3xg4sgJIdbIrAUvJSUFU6dORXR0NPz8/LBu3To4OTlh48aNepc/cuQIBg8ejIkTJ8LHxwcjRozAhAkTmj0rJIQQAGhjro6rqqqQl5eH2NhYbZtYLIZMJkNubq7edZ555hl89dVXOH78OIKDg/Hnn39iz549eP311xvtR6VSQaVSaaeVSiUAQCpmsLNjAAC1Ws1HShalNidbzK0+oeTKd57Sv/d/PrfJB2PGYraCd/v2bdTU1MDd3V2n3d3dHRcuXNC7zsSJE3H79m08++yzYIyhuroa06dPb/ItbVJSEhITExu0LwzUwMmpBgCwZ8+eVmRi2bKysswdgskIJVe+8lwa/Oj/lnQMVFZWGm3bZit4LaFQKLBkyRKsWbMGISEhuHTpEubMmYPFixdj0aJFeteJjY2FXC7XTiuVSnh7e+OjU2JUS+wAAGcSwk0Svymp1WpkZWUhLCwMEonE3OEYlVBy5TvP/gn7tP+3pGPgzp07Rtu22Qqeq6sr7OzsUFxcrNNeXFwMDw8PvessWrQIr7/+Ot566y0AwIABA1BRUYFp06bh3//+N8Tihh9JSqVSSKXSBu0qjQjVNSIAsOmDRCKR2HR+dQklV77yVP29/9du01IYMxazXbSwt7dHUFAQsrOztW0ajQbZ2dkIDQ3Vu05lZWWDomZn9/AsjTGmbxVCCNEy61tauVyOqKgoDBo0CMHBwUhNTUVFRQWio6MBAJMnT4aXlxeSkpIAABEREUhJSUFgYKD2Le2iRYsQERGhLXyEENIYsxa8cePG4datW4iLi0NRUREGDhyIzMxM7YWMwsJCnTO6hQsXQiQSYeHChbh+/To6d+6MiIgIfPzxx+ZKgRCrVP9mY58Fu3E1ebSZojEds1+0iImJQUxMjN55CoVCZ7pNmzaIj49HfHy8CSIjhNgazgWvoqICycnJyM7ORklJCTQajc78P//8k7fgCCGET5wL3ltvvYWcnBy8/vrr8PT0hEgkan4lCyeU03lChI5zwdu7dy92796NwYMHGyMeQggxGs63pXTo0AEdO3Y0RiyEEGJUnAve4sWLERcXZ9THPwghxBg4v6Vdvnw5Ll++DHd3d/j4+DS4Kzo/P5+34AghhE+cC15kZKQRwiCEEOPjXPDoHjhCiLVq8Y3HeXl5OH/+PACgX79+CAwM5C0oW0O3vRBiGTgXvJKSEowfPx4KhQIuLi4AgLKyMgwbNgzbt29H586d+Y6REMKjpr7Dwtb/OHO+Sjt79myUl5fj7NmzKC0tRWlpKc6cOQOlUom3337bGDESQggvOJ/hZWZmYv/+/ejbt6+2zc/PD2lpaRgxYgSvwRFCCJ84n+FpNBq9A/RJJJIGz9USQogl4Vzwnn/+ecyZMwc3btzQtl2/fh1z587F8OHDeQ3Olgjpuz8JsVScC97q1auhVCrh4+OD7t27o3v37vD19YVSqcSqVauMESMhhPCC82d43t7eyM/Px/79+7XfLta3b1/IZDLegyOEED616D48kUiEsLAwhIWF8R2PWdn6JXlChM6ggrdy5UpMmzYNDg4OWLlyZZPL0q0phBBLZVDB++yzzzBp0iQ4ODjgs88+a3Q5kUhEBe9vdLZIiOUxqOBduXJF7/8JIcSacL5K++GHH+odC+/+/fv48MMPeQmKEEKMgXPBS0xMxL179xq0V1ZWIjExkZegbBXdi0esgS3vp5wLHmNM7xf3nD59moZ+J8SC2XIhM5TBt6V06NABIpEIIpEIvXr10il6NTU1uHfvHqZPn26UIAkRCrrYZVwGF7zU1FQwxvDmm28iMTER7du3186zt7eHj48PQkNDjRIkIYTwweCCFxUVBQDw9fXFM888o3cAAUIIaYq5z2A5f4Y3dOhQbbF78OABlEqlzg8hpHXoszbj4VzwKisrERMTAzc3N7Rt2xYdOnTQ+eEqLS0NPj4+cHBwQEhICI4fP97k8mVlZZg1axY8PT0hlUrRq1cv7Nmzh3O/hFgaKnTGx7ngzZs3DwcOHMDatWshlUqxYcMGJCYmokuXLtiyZQunbaWnp0MulyM+Ph75+fkICAhAeHg4SkpK9C5fVVWFsLAwXL16FTt27MDFixexfv16eHl5cU3DqGjHJaQhSzguOBe8n376CWvWrMHYsWPRpk0bDBkyBAsXLsSSJUvw9ddfc9pWSkoKpk6diujoaPj5+WHdunVwcnLCxo0b9S6/ceNGlJaWIiMjA4MHD4aPjw+GDh2KgIAArmk0yhJeFEJsmTmPMc6jpZSWlqJbt24AAGdnZ5SWlgIAnn32WcyYMcPg7VRVVSEvLw+xsbHaNrFYDJlMhtzcXL3r/PjjjwgNDcWsWbPwww8/oHPnzpg4cSLef/992NnZ6V1HpVJBpVJpp2s/Z5SKGezsmLZdrVZD+ve0Wq02OA996m9HWq8fU6jtx1T9mZOt5NrcftLaPKV2TGc/17d9vo6Bxvqv21djjPk6ihhj+rNvhL+/P1atWoWhQ4dCJpNh4MCBWLZsGVauXImlS5fi2rVrBm3nxo0b8PLywpEjR3RuZ5k/fz5ycnJw7NixBuv06dMHV69exaRJkzBz5kxcunQJM2fOxNtvv93o9+UmJCTofQJk69atcHJyMjBrQoipVFZWYuLEibh79y6cnZ153TbnM7zo6GicPn0aQ4cOxYIFCxAREYHVq1dDrVYjJSWF1+Dq02g0cHNzw+effw47OzsEBQXh+vXr+PTTTxsteLGxsZDL5dpppVIJb29vfHRKjGrJo7PCMwnh6J+wT/v/1qi/ndrpun0Zm1qtRlZWFsLCwmz+FiJbybXufqJvH2ltnv0T9uns5/XxeQw01n/dvhpz584d3vuuxbngzZ07V/t/mUyGCxcuIC8vDz169IC/v7/B23F1dYWdnR2Ki4t12ouLi+Hh4aF3HU9PT0gkEp23r3379kVRURGqqqpgb2/fYB2pVAqpVNqgXaURobrm0dMiEokEqr+nW3vQ1N+Oqkb3UTxTHpQSicSqiwAX1p6rqt7+2JiW5qmqEens5/q2y9cx0Fj/dftqjDFfQ84XLep74oknMGbMGE7FDnj4dEZQUBCys7O1bRqNBtnZ2Y0+sTF48GBcunRJ59vRfv/9d3h6euotdoSQlrHVi3cGj3hsKC4DgMrlckRFRWHQoEEIDg5GamoqKioqEB0dDQCYPHkyvLy8kJSUBACYMWMGVq9ejTlz5mD27Nn4448/sGTJEhp0lFg9YxcYcxcwc/dfy+ARjw3BdcTjcePG4datW4iLi0NRUREGDhyIzMxMuLu7AwAKCwshFj86CfX29sa+ffswd+5c+Pv7w8vLC3PmzMH7779vcJ+EEPMz1yNmnEc85ltMTAxiYmL0zlMoFA3aQkNDcfToUaPFQwixXS3+DK+qqgoXL15EdXU1n/FYPUs5dSeENNSiZ2mnTJkCJycn9OvXD4WFhQCA2bNnIzk5mfcACSGEL5wLXmxsLE6fPg2FQgEHBwdtu0wmQ3p6Oq/BEUIInzjfh5eRkYH09HQ8/fTTOqMe9+vXD5cvX+Y1OEII4RPnM7xbt27Bzc2tQXtFRYXe77ogDdHnfMRQtK/wi3PBGzRoEHbvfvQi1Ba5DRs22MwQ79a+k1l7/IQYC+e3tEuWLMGoUaNw7tw5VFdXY8WKFTh37hyOHDmCnJwcY8RILFTde6lMdV+VuYcINwb6A2U6nM/wnn32WZw+fRrV1dUYMGAAfv75Z7i5uSE3NxdBQUHGiJEQQnjBqeCp1Wq8+eabEIlEWL9+PY4fP45z587hq6++woABA4wVIzFQ3TOFxkbEIETIOBU8iUSC7777zlixENIkeuvXMi39vdni75vzW9rIyEhkZGQYIRRCDGeLByMxPs4XLXr27IkPP/wQhw8fRlBQENq2baszX8gjl9BBSIhl41zwvvjiC7i4uCAvLw95eXk687iOlkIIIabEqeAxxqBQKODm5gZHR0djxUSsgL6zWVu8ZYTYFk6f4THG0LNnT4O/qIeYDr2dNg5L+L1aQgy2glPBE4vF6Nmzp1G/ZIMQfeigJ3zgfJU2OTkZ8+bNw5kzZ4wRj8WgA4yQ1rHEY4hzwZs8eTKOHz+OgIAAODo6omPHjjo/hJiKqb4HwhIPXNIynK/SpqamGiEMQohQmfJiF+eCFxUVZYw4CCHE6DgXPACoqalBRkYGzp8/D+Dh4J8vvviizhdkCw297SHE8nH+DO/SpUvo27cvJk+ejO+//x7ff/89XnvtNRrxmBAbZGt/yDkXvLfffhvdu3fHX3/9hfz8fOTn56OwsBC+vr70lIVANHUQ2NoBYu3o9dDFueDl5ORg6dKlOldkO3XqhOTkZBoA1Exop+ZfY0+SEOvGueBJpVKUl5c3aL937x7s7e15CYrwxxbGxaNCQ/jCueC98MILmDZtGo4dOwbGGBhjOHr0KKZPn44XX3zRGDESInhU9PnBueCtXLkS3bt3R2hoKBwcHODg4IDBgwejR48eWLFihTFiNBvaySwfvUaWyVJfF84Fz8XFBT/88AN+//137NixAzt27MDFixexc+dOtG/fvkVBpKWlwcfHBw4ODggJCcHx48cNWm/79u0QiUSIjIxsUb+EEGHhXPBq9ejRAxEREYiIiECPHj1aHEB6ejrkcjni4+ORn5+PgIAAhIeHo6SkpMn1rl69ivfeew9Dhgxpcd+WwFL/EhLjotfdPDgXvLFjx+KTTz5p0L506VK8+uqrnANISUnB1KlTER0dDT8/P6xbtw5OTk7YuHFjo+vU1NRg0qRJSExMRLdu3Tj3yTfaeQlpHVMdQ5wL3sGDB/GPf/yjQfuoUaNw8OBBTtuqqqpCXl4eZDLZo4DEYshkMuTm5ja63ocffgg3NzdMmTKFU3+EEGHj/GhZY7efSCQSKJVKTtu6ffs2ampq4O7urtPu7u6OCxcu6F3n0KFD+OKLL1BQUGBQHyqVCiqVSjtdG6NUzGBnx7TtarUa0jrTddubo2+9uus2tV2pHTOoD0P7r81DKn7YJhW3fvvN9ddYmzH6q92+vv747LexPnv/exfOJITzsn1D94/6bVzybO53Z8i8lvxea7fDJUdjvI71iRhj+rNvRHBwMF544QXExcXptCckJOCnn35q8D0XTblx4wa8vLxw5MgRhIaGatvnz5+PnJwcHDt2TGf58vJy+Pv7Y82aNRg1ahQA4I033kBZWVmj36SWkJCAxMTEBu1bt26Fk5OTwbESQkyjsrISEydOxN27d+Hs7Mzrtjmf4S1atAhjxozB5cuX8fzzzwMAsrOzsW3bNnz77bectuXq6go7OzsUFxfrtBcXF8PDw6PB8pcvX8bVq1cRERGhbdNoNA8TadMGFy9eRPfu3XXWiY2NhVwu104rlUp4e3vjo1NiVEseDXZwJiG80Zt0m/uL3tx6+ubXndeaM4b6267NQypmWDxIg0UnxciLG9ni7RvSX1Ptxuqzbtupfz+PrKwshIWFQSKR8N5f/T75yK3u697c/lGLa57N5cF1Hhf1f1eG5Fg7bcwR1TkXvIiICGRkZGDJkiXYsWMHHB0d4e/vj/3792Po0KGctmVvb4+goCBkZ2drby3RaDTIzs5GTExMg+X79OmD3377Tadt4cKFKC8vx4oVK+Dt7d1gHalUCqlU2qBdpRGhukaknZZIJFDVma6ruZ2rufX0za87rzUHaf1t189DpRGh56KfeRtvTF9/TbW31sMPs5vOsbYviUTCS7+NvV617Xz1Yej+USvw4wNYGmx4ns3lwXUeF/V/V4bkWPd1NJYWDQ81evRojB7NzwEkl8sRFRWFQYMGITg4GKmpqaioqEB0dDSAhyMse3l5ISkpCQ4ODujfv7/O+i4uLgDQoJ0QYh6WfNdCiwoeAOTl5emMhxcYGNii7YwbNw63bt1CXFwcioqKMHDgQGRmZmovZBQWFkIsbvHtgkZFX0toGfon7MPSYHNHQawB54JXUlKC8ePHQ6FQaM+uysrKMGzYMGzfvh2dO3fmHERMTIzet7AAoFAomlx306ZNnPsjhAgT51On2bNno7y8HGfPnkVpaSlKS0tx5swZKJVKmx4Pz5JP0wkhhuFc8DIzM7FmzRr07dtX2+bn54e0tDTs3buX1+CEgoqpsNDrbT6cC55Go9F7FUUikWhvEREC2mkJ4ZcpjinOBe/555/HnDlzcOPGDW3b9evXMXfuXAwfPpzX4CyNpRU5S4vHFhjyO7WG37sxYrSGvJvDueCtXr0aSqUSPj4+6N69O7p37w5fX18olUqsWrXKGDFaFJ8Fu23ihTc2+h0RS8T5Kq23tzfy8/Oxf/9+7fOuffv21RkAgNgmUxcxKprWx9JfM85neFu2bEFVVRXCwsIwe/ZszJ49GzKZDFVVVdiyZYsxYiQ8sPQdkRBT4FzwoqOjcffu3Qbt5eXl2qcjCCHEEnEueIwxiEQNn4u7du1ai4d4J4QQUzD4M7zAwECIRCKIRCIMHz4cbdo8WrWmpgZXrlzByJH8jcpBCOHO2I87WvvjlAYXvNrRTAoKChAeHo7HHntMO8/e3h4+Pj4YO3Ys7wESQghfDC548fHxAAAfHx+MGzcODg4ORgtKiKz9Lych1oDzZ3hRUVFU7CwAXXU1r5b+/m35dbOG3DgXPLFYDDs7u0Z/CKllDQcAsSzG3mc433j8/fff61ylVavVOHXqFDZv3qz3uyMIIaZhqj8w1vzxC+eCV3vxoq5XXnkF/fr1Q3p6On11Imk1az6giGXjbSjhp59+GtnZ2XxtjhgJvc20HXVfS3pdDcNLwbt//z5WrlwJLy8vPjZHCLFw1lpgOb+l7dChg85neIwxlJeXw9HREV9//TWvwRHCRf+Efbj48QvmDsOkzFl4avu2po8fOBe81NRUnWmxWIzOnTsjJCQE169f5ysuQaLPrggxLs4FLyoqSme6vLwc27ZtQ3x8PE6ePImamhregiMNUVG0HPRaWJ8Wf4Z38OBBREVFwdPTE8uWLcOwYcNw9OhRPmMjxKZY6+detoRTwSsqKkJycjJ69uyJV199Fc7OzlCpVMjIyEBycjKeeuopY8VJrJilH+iWHh/hj8EFLyIiAr1798avv/6K1NRU3LhxQxBDuhNCTCskyXi3txlc8Pbu3YspU6YgMTERo0ePpsfIjMTSzjZoWHdiSwwueIcOHUJ5eTmCgoIQEhKC1atX4/bt28aMjRgJFRUiVAYXvKeffhrr16/HzZs38a9//Qvbt29Hly5doNFokJWVhfLycmPGSQghrcb5Km3btm3x5ptv4tChQ/jtt9/w7rvvIjk5GW5ubnjxxReNESP5G52ZEdI6rXq0rHfv3li6dCmuXbuGbdu2tXg7aWlp8PHxgYODA0JCQnD8+PFGl12/fj2GDBmCDh06oEOHDpDJZE0uT4gxGfpHiP5YWQZenqW1s7NDZGQkfvzxR87rpqenQy6XIz4+Hvn5+QgICEB4eDhKSkr0Lq9QKDBhwgT88ssvyM3Nhbe3N0aMGEFPeRBCmsXbaCktlZKSgqlTpyI6Ohp+fn5Yt24dnJycsHHjRr3Lf/3115g5cyYGDhyIPn36YMOGDdBoNDY/Uou1nyFYe/zENnB+tIxPVVVVyMvLQ2xsrLZNLBZDJpMhNzfXoG1UVlZCrVajY8eOeuerVCqoVCrttFKpBABIxQx2dkzbrlarIa0zXVdr5gHQO9+Qef0T9uFMQniD5QyJRyp+OL/23/rr1fbRHKkda3EeXPvsn7APUruG6zW1TQA6uRqaV/0+ueShb15zWroP6MuztbFa2n5ef14bjf5++CBijBlv6824ceMGvLy8cOTIEYSGhmrb58+fj5ycHBw7dqzZbcycORP79u3D2bNn9X7XRkJCgt6RmLdu3QonJ6fWJUAI4V1lZSUmTpyIu3fvwtnZmddtm/UMr7WSk5Oxfft2KBSKRr9YKDY2FnK5XDutVCrh7e2Nj06JUS15dPP0mYRw9E/Yp3cbrZkHQO/8ls4zNB6pmGHxIA0WnRRDpRHpXa+2n8bULstXrIb2py/WxrYJQCfXvDhu341sSI6GxGNoP/rWM3RebZ5hYWGQSCRG2V8tYT9vozbeJ21mLXiurq6ws7NDcXGxTntxcTE8PDyaXHfZsmVITk7G/v374e/v3+hyUqkUUqm0QbtKI0J1zaNx/SQSCVR1putqzTwAeue3dB7XeFQakXa6/rzafhpTdz0+YjW0P32xNrZNnfU1omb7aKzP1v7Om/Lw80v+9gGJRGK0/dUS9vMajf5++GDWixb29vYICgrSueBQewGi7lvc+pYuXYrFixcjMzMTgwYNMkWohDSJLspYB7NfpZXL5Vi/fj02b96M8+fPY8aMGaioqEB0dDQAYPLkyToXNT755BMsWrQIGzduhI+PD4qKilBUVIR79+6ZKwViIFMWBSpARB+zf4Y3btw43Lp1C3FxcSgqKsLAgQORmZkJd3d3AEBhYSHE4kd1ee3ataiqqsIrr7yis534+HgkJCSYMnTCI1ssUDRAqOUxe8EDgJiYGMTExOidp1AodKavXr1q/ICITRYgQsz+lpaYjzmKmiUVUr5jsaTciH5U8IjZ2VKhqM3FlnKyJVTwCOEZFTvLRQVP4PQdnMY+YH0W7DbJmRAVHlIfFTxCiGBQwSM6Z0JCOSsSSp5EFxU8QohgUMEjNo3O5EhdVPCI4FARFC4qeMTmUYEjtajgEUGgokcAKniEEAGhgkcIEQwqeIQQwaCCRwgRDCp4hBDBoIJHCBEMKniEEMGggkcIEQwqeIQQwaCCRwgRDCp4hBDBoIJHCBEMKniEEMGggkcIEQwqeIQQwaCCRwgRDCp4hBDBsIiCl5aWBh8fHzg4OCAkJATHjx9vcvlvv/0Wffr0gYODAwYMGIA9e/aYKFJCiDUze8FLT0+HXC5HfHw88vPzERAQgPDwcJSUlOhd/siRI5gwYQKmTJmCU6dOITIyEpGRkThz5oyJIyeEWBuzF7yUlBRMnToV0dHR8PPzw7p16+Dk5ISNGzfqXX7FihUYOXIk5s2bh759+2Lx4sV48sknsXr1ahNHTgixNm3M2XlVVRXy8vIQGxurbROLxZDJZMjNzdW7Tm5uLuRyuU5beHg4MjIy9C6vUqmgUqm003fv3gUAtFFX6Cx3584dtKnWbeNjHgC981s6z9B42mgYKis1aKMWo0YjsuhYWzuvbq7WlgeXeGrzvHPnDiQSiVl/563Jo7l5tccmY0xvf63CzOj69esMADty5IhO+7x581hwcLDedSQSCdu6datOW1paGnNzc9O7fHx8PANAP/RDP1b2c/nyZX4KTR1mPcMzhdjYWJ0zwrKyMjzxxBMoLCxE+/btzRiZcSmVSnh7e+Ovv/6Cs7OzucMxKqHkKpQ87969i65du6Jjx468b9usBc/V1RV2dnYoLi7WaS8uLoaHh4fedTw8PDgtL5VKIZVKG7S3b9/epneaWs7OzoLIExBOrkLJUyzm/xKDWS9a2NvbIygoCNnZ2do2jUaD7OxshIaG6l0nNDRUZ3kAyMrKanR5QgipZfa3tHK5HFFRURg0aBCCg4ORmpqKiooKREdHAwAmT54MLy8vJCUlAQDmzJmDoUOHYvny5Rg9ejS2b9+OkydP4vPPPzdnGoQQK2D2gjdu3DjcunULcXFxKCoqwsCBA5GZmQl3d3cAQGFhoc6p7TPPPIOtW7di4cKF+OCDD9CzZ09kZGSgf//+BvUnlUoRHx+v922uLRFKnoBwcqU8W0/EmDGu/RJCiOUx+43HhBBiKlTwCCGCQQWPECIYVPAIIYIhuILHdSgqS5eQkACRSKTz06dPH+38Bw8eYNasWejUqRMee+wxjB07tsGN25bo4MGDiIiIQJcuXSASiRo8K80YQ1xcHDw9PeHo6AiZTIY//vhDZ5nS0lJMmjQJzs7OcHFxwZQpU3Dv3j0TZtG85vJ84403Gry+I0eO1FnGGvJMSkrCU089hXbt2sHNzQ2RkZG4ePGizjKG7KuFhYUYPXo0nJyc4Obmhnnz5qG6utrgOARV8LgORWUt+vXrh5s3b2p/Dh06pJ03d+5c/PTTT/j222+Rk5ODGzduYMyYMWaM1jAVFRUICAhAWlqa3vlLly7FypUrsW7dOhw7dgxt27ZFeHg4Hjx4oF1m0qRJOHv2LLKysrBr1y4cPHgQ06ZNM1UKBmkuTwAYOXKkzuu7bds2nfnWkGdOTg5mzZqFo0ePIisrC2q1GiNGjEBFxaOBA5rbV2tqajB69GhUVVXhyJEj2Lx5MzZt2oS4uDjDA+H96VwLFhwczGbNmqWdrqmpYV26dGFJSUlmjKp14uPjWUBAgN55ZWVlTCKRsG+//Vbbdv78eQaA5ebmmijC1gPAdu7cqZ3WaDTMw8ODffrpp9q2srIyJpVK2bZt2xhjjJ07d44BYCdOnNAus3fvXiYSidj169dNFjsX9fNkjLGoqCj20ksvNbqONebJGGMlJSUMAMvJyWGMGbav7tmzh4nFYlZUVKRdZu3atczZ2ZmpVCqD+hXMGV7tUFQymUzb1txQVNbijz/+QJcuXdCtWzdMmjQJhYWFAIC8vDyo1WqdnPv06YOuXbtadc5XrlxBUVGRTl7t27dHSEiINq/c3Fy4uLhg0KBB2mVkMhnEYjGOHTtm8phbQ6FQwM3NDb1798aMGTO0wyoB1ptn7TBttQMEGLKv5ubmYsCAAdqHEoCHQ8MplUqcPXvWoH4FU/Bu376NmpoanV8WALi7u6OoqMhMUbVeSEgINm3ahMzMTKxduxZXrlzBkCFDUF5ejqKiItjb28PFxUVnHWvPuTb2pl7LoqIiuLm56cxv06YNOnbsaFW5jxw5Elu2bEF2djY++eQT5OTkYNSoUaipqQFgnXlqNBq88847GDx4sPYJKUP21aKiIr2vee08Q5j90TLSOqNGjdL+39/fHyEhIXjiiSfwzTffwNHR0YyRET6MHz9e+/8BAwbA398f3bt3h0KhwPDhw80YWcvNmjULZ86c0fms2VQEc4bXkqGorJGLiwt69eqFS5cuwcPDA1VVVSgrK9NZxtpzro29qdfSw8OjwcWo6upqlJaWWnXu3bp1g6urKy5dugTA+vKMiYnBrl278Msvv+Dxxx/XthuyrzY2NFztPEMIpuC1ZCgqa3Tv3j1cvnwZnp6eCAoKgkQi0cn54sWLKCwstOqcfX194eHhoZOXUqnEsWPHtHmFhoairKwMeXl52mUOHDgAjUaDkJAQk8fMl2vXruHOnTvw9PQEYD15MsYQExODnTt34sCBA/D19dWZb8i+Ghoait9++02nwGdlZcHZ2Rl+fn4GByIY27dvZ1KplG3atImdO3eOTZs2jbm4uOhc9bE27777LlMoFOzKlSvs8OHDTCaTMVdXV1ZSUsIYY2z69Omsa9eu7MCBA+zkyZMsNDSUhYaGmjnq5pWXl7NTp06xU6dOMQAsJSWFnTp1iv33v/9ljDGWnJzMXFxc2A8//MB+/fVX9tJLLzFfX192//597TZGjhzJAgMD2bFjx9ihQ4dYz5492YQJE8yVkl5N5VleXs7ee+89lpuby65cucL279/PnnzySdazZ0/24MED7TasIc8ZM2aw9u3bM4VCwW7evKn9qays1C7T3L5aXV3N+vfvz0aMGMEKCgpYZmYm69y5M4uNjTU4DkEVPMYYW7VqFevatSuzt7dnwcHB7OjRo+YOqVXGjRvHPD09mb29PfPy8mLjxo1jly5d0s6/f/8+mzlzJuvQoQNzcnJiL7/8Mrt586YZIzbML7/8ovd7DqKiohhjD29NWbRoEXN3d2dSqZQNHz6cXbx4UWcbd+7cYRMmTGCPPfYYc3Z2ZtHR0ay8vNwM2TSuqTwrKyvZiBEjWOfOnZlEImFPPPEEmzp1aoM/0NaQp74cAbAvv/xSu4wh++rVq1fZqFGjmKOjI3N1dWXvvvsuU6vVBsdBw0MRQgRDMJ/hEUIIFTxCiGBQwSOECAYVPEKIYFDBI4QIBhU8QohgUMEjhAgGFTxCiGBQwSMW44033kBkZKS5wyA2jAoeIUQwqOARq5CSkoIBAwagbdu28Pb2xsyZMxt8Uc369evh7e0NJycnvPzyy0hJSdEZUPL06dMYNmwY2rVrB2dnZwQFBeHkyZMmzoSYExU8YhXEYjFWrlyJs2fPYvPmzThw4ADmz5+vnX/48GFMnz4dc+bMQUFBAcLCwvDxxx/rbGPSpEl4/PHHceLECeTl5WHBggWQSCSmToWYEQ0eQCzGG2+8gbKysgZfVajPjh07MH36dNy+fRvAw5GB7927h127dmmXee2117Br1y7toJLOzs5YtWoVoqKijBE+sQJ0hkeswv79+zF8+HB4eXmhXbt2eP3113Hnzh1UVlYCeDhYZHBwsM469aflcjneeustyGQyJCcn4/LlyyaLn1gGKnjE4l29ehUvvPAC/P398d133yEvL0/7Pa5VVVUGbychIQFnz57F6NGjceDAAfj5+WHnzp3GCptYICp4xOLl5eVBo9Fg+fLlePrpp9GrVy/cuHFDZ5nevXvjxIkTOm31pwGgV69emDt3Ln7++WeMGTMGX375pVFjJ5aFvrWMWJS7d++ioKBAp83V1RVqtRqrVq1CREQEDh8+jHXr1uksM3v2bPzf//0fUlJSEBERgQMHDmDv3r0QiUQAgPv372PevHl45ZVX4Ovri2vXruHEiRMYO3asqVIjloCP4ZsJ4UNUVJTeYcCnTJnCUlJSmKenJ3N0dGTh4eFsy5YtDAD73//+p13/888/Z15eXszR0ZFFRkayjz76iHl4eDDGGFOpVGz8+PHM29ub2dvbsy5durCYmBid78Agto+u0hKbNXXqVFy4cAH/+c9/zB0KsRD0lpbYjGXLliEsLAxt27bF3r17sXnzZqxZs8bcYRELQmd4xGb885//hEKhQHl5Obp164bZs2dj+vTp5g6LWBAqeIQQwaDbUgghgkEFjxAiGFTwCCGCQQWPECIYVPAIIYJBBY8QIhhU8AghgkEFjxAiGFTwCCGC8f8tgbR53UCQNAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 300x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_raw = pd.read_csv('dataset/electricity.csv')\n",
    "scaler = StandardScaler()\n",
    "cols_data = df_raw.columns[1:]\n",
    "df_data = df_raw[cols_data]\n",
    "\n",
    "train_data = df_data[:7*len(df_data)//10]\n",
    "scaler.fit(train_data.values)\n",
    "data = scaler.transform(df_data.values)\n",
    "\n",
    "train_data = data[:7*len(df_data)//10]\n",
    "test_data = data[9*len(df_data)//10:9]\n",
    "\n",
    "\n",
    "acf_values = acf(train_data[:,320], nlags=200)\n",
    "\n",
    "\n",
    "lags = np.arange(len(acf_values))\n",
    "plt.figure(figsize=(3, 2.5))\n",
    "plt.bar(lags, acf_values)\n",
    "\n",
    "plt.xlim([0, 200])\n",
    "plt.ylim([0, 1])\n",
    "\n",
    "plt.xlabel(\"Lags\", fontsize=10)\n",
    "plt.ylabel(\"Autocorrelation\", fontsize=10)\n",
    "\n",
    "plt.grid(True)\n",
    "plt.savefig('acf/electricity[320].pdf', bbox_inches='tight')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1781ebed-d7c7-4b4d-a550-30da025d6396",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dd12cc59-180e-4253-84f1-725d506705b7",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "35f8dc42-fa08-4e7a-b791-f085af13232f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_raw = pd.read_csv('dataset/traffic.csv')\n",
    "scaler = StandardScaler()\n",
    "cols_data = df_raw.columns[1:]\n",
    "df_data = df_raw[cols_data]\n",
    "\n",
    "train_data = df_data[:7*len(df_data)//10]\n",
    "scaler.fit(train_data.values)\n",
    "data = scaler.transform(df_data.values)\n",
    "\n",
    "train_data = data[:7*len(df_data)//10]\n",
    "test_data = data[9*len(df_data)//10:9]\n",
    "\n",
    "\n",
    "acf_values = acf(train_data[:,606], nlags=200)\n",
    "\n",
    "\n",
    "lags = np.arange(len(acf_values))\n",
    "plt.figure(figsize=(3, 2.5))\n",
    "plt.bar(lags, acf_values)\n",
    "\n",
    "plt.xlim([0, 200])\n",
    "plt.ylim([-0.4, 1])\n",
    "\n",
    "plt.xlabel(\"Lags\", fontsize=10)\n",
    "plt.ylabel(\"Autocorrelation\", fontsize=10)\n",
    "\n",
    "plt.grid(True)\n",
    "plt.savefig('acf/traffic[606].pdf', bbox_inches='tight')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e1b7a688-17d9-4cdf-a8d4-c3a64c0c1a29",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "16ebde5f-0495-481d-a1d5-5aa3173dba26",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVEAAAEFCAYAAABaadSjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8WgzjOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxeklEQVR4nO3deVRT174H8G9CQyBaREQIKAqCEwpq8YrUDipgsNZKa1tRW5FafA7QKl6t9FYEca71WpXqu1oVV1WsrfW2WlFEwacgKIjWiacWSxWCFgph0BDJfn/4OLcxAROSQBJ+n7WyJHvvs/ltcvydMfvwGGMMhBBCWoTf1gEQQog5oyRKCCF6oCRKCCF6oCRKCCF6oCRKCCF6oCRKCCF6oCRKCCF6oCRKCCF6oCRKCCF6oCRKCCF6MKskevr0aYwfPx6urq7g8Xg4dOjQM5fJyMjACy+8AKFQCC8vL+zatUutTVJSEtzd3WFjYwN/f3/k5uYaPnhCiEUyqyRaW1uLQYMGISkpSav2RUVFGDduHEaNGoWCggLMmzcPH374IY4dO8a12b9/P2JiYrB06VLk5+dj0KBBkEgkuH//vrGGQQixIDxznYCEx+Phhx9+QGhoaJNtPvnkExw5cgRXrlzhysLCwlBZWYnU1FQAgL+/P/72t79h8+bNAAClUgk3NzdER0dj8eLFRh0DIcT8PdfWARhTdnY2goKCVMokEgnmzZsHAKivr0deXh5iY2O5ej6fj6CgIGRnZzfZr1wuh1wu594rlUpUVFSgS5cu4PF4hh0EIUQvjDFUV1fD1dUVfL7hD74tOolKpVI4OzurlDk7O0Mmk+Hhw4f4888/0dDQoLHNjRs3mux31apVSEhIMErMhBDj+P3339G9e3eD92vRSdRYYmNjERMTw72vqqpCjx498L//+79wcHBow8iMS6FQ4NSpUxg1ahQEAkFbh2M0NE7LUlFRgT59+uD55583Sv8WnUTFYjHKyspUysrKymBnZwdbW1tYWVnByspKYxuxWNxkv0KhEEKhUK3cwcEBXbp0MUzwJkihUEAkEqFLly4W/Z+OxmmZjHWqzayuzusqICAA6enpKmVpaWkICAgAAFhbW8PPz0+ljVKpRHp6OteGEEKaY1ZJtKamBgUFBSgoKADw5BamgoICFBcXA3hymD1t2jSu/axZs/Drr79i0aJFuHHjBr766it8++23mD9/PtcmJiYG27ZtQ3JyMq5fv47Zs2ejtrYWERERrTo2Qoh5MqvD+QsXLmDUqFHc+8bzkuHh4di1axdKS0u5hAoAHh4eOHLkCObPn48vv/wS3bt3x/bt2yGRSLg2kyZNwoMHDxAXFwepVIrBgwcjNTVV7WITIYRoYlZJdOTIkWjutlZN30YaOXIkLl682Gy/UVFRiIqK0jc8Qkg7ZFaH84QQYmooiRJCiB4oiRqQ/6r0ZzcihFgUSqKEEKIHSqKEEKIHSqJG4r74SFuHQAhpBZRECSFED5REjYj2RgmxfJRECSFED5REjYz2RgmxbJRECSFED5REWwHtjRJiuSiJEkKIHiiJthLaGyXEMlESJYQQPVASJYQQPVASJYQQPVASJYQQPVASbQN0kYkQy0FJlBBC9EBJlBBC9GB2STQpKQnu7u6wsbGBv78/cnNzm2w7cuRI8Hg8tde4ceO4NtOnT1erDwkJMfo46JCeGIv74iMqr8YyYhxm9cjk/fv3IyYmBlu3boW/vz82bNgAiUSCwsJCODk5qbU/ePAg6uvruffl5eUYNGgQ3nnnHZV2ISEh2LlzJ/deKBQabxCEGFFzybKx7s7qcU22Ibozqz3R9evXIzIyEhEREfD29sbWrVshEomwY8cOje0dHBwgFou5V1paGkQikVoSFQqFKu06d+7cGsMhxKC03dukvVLDMps90fr6euTl5SE2NpYr4/P5CAoKQnZ2tlZ9fP311wgLC0OHDh1UyjMyMuDk5ITOnTtj9OjRWL58Obp06dJkP3K5HHK5nHsvk8kAAEI+g0KhePKzFVNb7um6vv84jCvxEq1iNwWN8Tf+a6nMbZwD44/hSrxE4zoHPBnH03V9/3EYF/8xmqu3ZMYeH48xpvkvb2JKSkrQrVs3ZGVlISAggCtftGgRMjMzkZOT0+zyubm58Pf3R05ODoYNG8aVp6SkQCQSwcPDA7dv38ann36Kjh07Ijs7G1ZWVhr7io+PR0JCglr53r17IRKJWjhCQogx1NXVYcqUKaiqqoKdnZ3B+zebPVF9ff311/Dx8VFJoAAQFhbG/ezj4wNfX194enoiIyMDgYGBGvuKjY1FTEwM914mk8HNzQ3LL/JRsOI1AE/2Dp7WuNf51zpz2xNNS0tDcHAwBAJBW4djNOY0zsZ16Uq8ROM611ydkM+QOFRpFuPUR3l5uVH7N5sk6ujoCCsrK5SVlamUl5WVQSwWN7tsbW0tUlJSsGzZsmf+nl69esHR0RG3bt1qMokKhUKNF5/kSh63MsobeGr1mup6Lzludif6BQKBRf+na2Tq43xybvPJuiQQCDSuc8+qa6w35XHqy9hjM5sLS9bW1vDz80N6ejpXplQqkZ6ernJ4r8mBAwcgl8vx3nvvPfP33L17F+Xl5XBxcdE7ZkLMQVN7sEQ7ZpNEASAmJgbbtm1DcnIyrl+/jtmzZ6O2thYREREAgGnTpqlceGr09ddfIzQ0VO1iUU1NDRYuXIhz587hzp07SE9Px4QJE+Dl5QWJxHwOs0n7Y+gr7HTFvuXM5nAeACZNmoQHDx4gLi4OUqkUgwcPRmpqKpydnQEAxcXF4PNVtwuFhYU4c+YMjh8/rtaflZUVLl++jOTkZFRWVsLV1RVjxoxBYmJiq94r6r74iNkd0hNCnjCrJAoAUVFRiIqK0liXkZGhVta3b180dQOCra0tjh2jQxliXoy110gb85Yxq8N5QggxNZRECTEjxj53SedGdUdJlBBC9EBJlBBC9EBJlBCigg7pdUNJ1MTQCkyIeaEkSoiJa4sNK23MtafzfaK1tbVYvXo10tPTcf/+fSiVSpX6X3/91WDBEUKIqdM5iX744YfIzMzE+++/DxcXF/B4TU9sQFqGbnomxHzonESPHj2KI0eOYMSIEcaIhxDyF219WE0b9GfT+Zxo586d4eDgYIxYCCHE7OicRBMTExEXF4e6ujpjxEMI+X9tvRdKtKPz4fwXX3yB27dvw9nZGe7u7moTnubn5xssuPaMDqOIqaB1sXk6J9HQ0FAjhEEIIeZJ5yS6dOlSY8RBCPkLOpQ3Hy2eTzQvLw/Xr18HAAwYMABDhgwxWFCEENNCh/RN0zmJ3r9/H2FhYcjIyIC9vT0AoLKyEqNGjUJKSgq6du1q6BjbLVpxCTF9Ol+dj46ORnV1Na5evYqKigpUVFTgypUrkMlk+Oijj4wRIyHtCh3Kmxedk2hqaiq++uor9O/fnyvz9vZGUlISjh49atDgCCGmg5K7ZjonUaVSqfE5zgKBQO179IQQYul0TqKjR4/Gxx9/jJKSEq7s3r17mD9/PgIDAw0aHKGtPyGmTuckunnzZshkMri7u8PT0xOenp7w8PCATCbDpk2bjBGjiqSkJLi7u8PGxgb+/v7Izc1tsu2uXbvA4/FUXjY2NiptGGOIi4uDi4sLbG1tERQUhJs3bxp7GISYJdqoq9P56rybmxvy8/Nx4sQJ3LhxAwDQv39/BAUFGTy4p+3fvx8xMTHYunUr/P39sWHDBkgkEhQWFsLJyUnjMnZ2digsLOTePz3r1Nq1a7Fx40YkJyfDw8MDS5YsgUQiwbVr19QSLiGEPK1FkzLzeDwEBwcjOjoa0dHRrZJAAWD9+vWIjIxEREQEvL29sXXrVohEIuzYsaPZWMViMfdydnbm6hhj2LBhAz777DNMmDABvr6+2L17N0pKSnDo0KFWGJF2aOtv+egzNl9a7Ylu3LgRM2fOhI2NDTZu3NhsW2Pd5lRfX4+8vDzExsZyZXw+H0FBQcjOzm5yuZqaGvTs2RNKpRIvvPACVq5ciQEDBgAAioqKIJVKVTYCnTp1gr+/P7KzsxEWFqaxT7lcDrlczr2XyWQAACGfQaFQPPnZiqkt19K6v9a3pcYYTCEWY2qLcQqtWr7uNNbrWifkM5V/tV2u7z8O40q8ROMypsjYnyOPMab5L/gXHh4euHDhArp06QIPD4+mO+PxjDazfUlJCbp164asrCwEBARw5YsWLUJmZiZycnLUlsnOzsbNmzfh6+uLqqoqrFu3DqdPn8bVq1fRvXt3ZGVlYcSIESgpKYGLiwu33Lvvvgsej4f9+/drjCU+Ph4JCQlq5Xv37oVIJDLAaAkhhlJXV4cpU6agqqoKdnZ2Bu9fqz3RoqIijT+buoCAAJWE++KLL6J///747//+byQmJra439jYWMTExHDvZTIZ3NzcsPwiHwUrXgMADIw/prZc49Zb17q/1rclhUKBtLQ0BAcHa7zNzVK0xTgHxh/Te/3QtU7IZ0gcqsSSC3zIlepPqHhWn+aivLzcqP3rfGFp2bJl+Pvf/662x/Xw4UN8/vnniIuLM1hwf+Xo6AgrKyuUlZWplJeVlUEsFmvVh0AgwJAhQ3Dr1i0A4JYrKytT2RMtKyvD4MGDm+xHKBRCKBSqlcuVPO4/nbxBfaVsaV1jval8DVQgEFh0Em3UWuN8cj605etOY31L6oAn621Tv7O5Ps2FsWPV+cJSQkICampq1Mrr6uo0HuIairW1Nfz8/JCens6VKZVKpKenq+xtNqehoQG//PILlzA9PDwgFotV+pTJZMjJydG6T0JI+6bznihjTOPD6S5dumT0x4bExMQgPDwcQ4cOxbBhw7BhwwbU1tYiIiICADBt2jR069YNq1atAvBkr3n48OHw8vJCZWUlPv/8c/z222/48MMPATw5hztv3jwsX74cvXv35m5xcnV1pXlTCSFa0TqJdu7cmbthvU+fPiqJtKGhATU1NZg1a5ZRgmw0adIkPHjwAHFxcZBKpRg8eDBSU1O525aKi4vB5/9n5/rPP/9EZGQkpFIpOnfuDD8/P2RlZcHb25trs2jRItTW1mLmzJmorKzESy+9hNTUVLpHlLQKurXJ/GmdRDds2ADGGD744AMkJCSgU6dOXJ21tTXc3d1b5RA4KioKUVFRGusyMjJU3v/zn//EP//5z2b74/F4WLZsGZYtW2aoEI3KVM6LEgLQ+gjokETDw8MBPDmP+OKLL5rViWVCCDEWnc+Jvvrqq9zPjx49Qn19vUq9Me7DIsQS0aG8ZdD56nxdXR2ioqLg5OSEDh06oHPnziovQkj70t43Bjon0YULF+LkyZPYsmULhEIhtm/fjoSEBLi6umL37t3GiJE8pb2vtISYEp0P53/66Sfs3r0bI0eOREREBF5++WV4eXmhZ8+e2LNnD6ZOnWqMOAkhxCTpvCdaUVGBXr16AXhy/rOiogIA8NJLL+H06dOGjY4QC0VHE5ZD5yTaq1cv7vvz/fr1w7fffgvgyR5q49M/CSHtS3veKOicRCMiInDp0iUAwOLFi5GUlAQbGxvMnz8fCxcuNHiARLP2vNISYkp0Pic6f/587uegoCDcuHEDeXl58PLygq+vr0GDI4QQU6dzEn1az5490bNnT0PEQggxY+3120taz2yvLWPNbE8IIaZIqyT6rO+fN+LxeJREW1F73fITYkp0ntmeENIytNGzTC162ifw5MFxhYWFePz4sSHjIYSYsfZ410iLvjs/Y8YMiEQiDBgwAMXFxQCA6OhorF692uABEkKIKdM5icbGxuLSpUvIyMhQmbg4KCioyadjEuNpj1t+QkyJzrc4HTp0CPv378fw4cNVZrcfMGAAbt++bdDgCLEUtLGzXDrviT548ABOTk5q5bW1tRqfvUQIIZZM5yQ6dOhQHDnyn61qY+Lcvn07PSGTENLu6Hw4v3LlSowdOxbXrl3D48eP8eWXX+LatWvIyspCZmamMWIkWqDbZ0wXHcpbNp33RF966SVcunQJjx8/ho+PD44fPw4nJydkZ2fDz8/PGDESQsxQe9l46JREFQoFPvjgA/B4PGzbtg25ubm4du0avvnmG/j4+BgrRhVJSUlwd3eHjY0N/P39kZub22Tbbdu24eWXX+YeXRIUFKTWfvr06dyjoBtfISEhxh4GIcRC6JREBQIBvv/+e2PF8kz79+9HTEwMli5divz8fAwaNAgSiQT379/X2D4jIwOTJ0/GqVOnkJ2dDTc3N4wZMwb37t1TaRcSEoLS0lLutW/fvtYYjsG1ly0/IaZE58P50NBQHDp0yAihPNv69esRGRmJiIgIeHt7Y+vWrRCJRNixY4fG9nv27MGcOXMwePBg9OvXD9u3b4dSqUR6erpKO6FQCLFYzL3ogXvEUNr7hq09jF/nC0u9e/fGsmXLcPbsWfj5+aFDhw4q9caagKS+vh55eXmIjY3lyvh8PoKCgpCdna1VH3V1dVAoFHBwcFApz8jIgJOTEzp37ozRo0dj+fLl6NKlS5P9yOVyyOVy7r1MJgMACPkMCoXiyc9WTG25ltY11mtT19iPMTT2bczfYQoMOc6nP7O2Xj9UYuMzlX917VPbWNt6fTH27+cxxjT/lZrg4eHRdGc8Hn799Ve9g9KkpKQE3bp1Q1ZWlsqtVIsWLUJmZiZycnKe2cecOXNw7NgxXL16lfu2VUpKCkQiETw8PHD79m18+umn6NixI7Kzs2FlZaWxn/j4eCQkJKiV7927FyKRqIUjJIQYQ11dHaZMmYKqqirY2dkZvH+d9kQZY9xem62trcGDMabVq1cjJSVF7euqYWFh3M8+Pj7w9fWFp6cnMjIyEBgYqLGv2NhYxMTEcO9lMhnc3Nyw/CIfBSteAwAMjD+mttyVeEmL6hrrta1r7MvQFAoF0tLSEBwcDIFAYJTfYQoMNU5DrgOGXD8aCfkMiUOVWHKBD7lS/Ysyz+pT21iNtT5qq7y83Kj965xEe/fujatXr6J3797GikkjR0dHWFlZoaysTKW8rKwMYrG42WXXrVuH1atX48SJE898hEmvXr3g6OiIW7duNZlEhUIhhEKhWrlcyeP+08kb1FfKltY11mtbZ+wEJxAILDqJNtJ3nIZcBwy5fqjFqeQ1+Tub61PbWHsvOd6m9zAbe13V6cISn89H7969jZ7ZNbG2toafn5/KRaHGi0TNfVNq7dq1SExMRGpqKoYOHfrM33P37l2Ul5fDxcXFIHETQiybzlfnV69ejYULF+LKlSvGiKdZMTEx2LZtG5KTk3H9+nXMnj0btbW1iIiIAABMmzZN5cLTmjVrsGTJEuzYsQPu7u6QSqWQSqWoqakBANTU1GDhwoU4d+4c7ty5g/T0dEyYMAFeXl6QSNr2EIQQYh50vjo/bdo01NXVYdCgQbC2tlY7N1pRUWGw4J42adIkPHjwAHFxcZBKpRg8eDBSU1Ph7OwMACguLgaf/5/twpYtW1BfX4+3335bpZ+lS5ciPj4eVlZWuHz5MpKTk1FZWQlXV1eMGTMGiYmJGg/XzQV9BbTttYdbe3Rhyeukzkl0w4YNRghDe1FRUYiKitJYl5GRofL+zp07zfZla2uLY8c0nzgnhBBt6JxEw8PDjREHIYSYpRY9d76hoQGHDh3C9evXATyZkPmNN95o8r5KQtoLSz5sJZrpfGHp1q1b6N+/P6ZNm4aDBw/i4MGDeO+992hmexND5+SIqbHUdVLnJPrRRx/B09MTv//+O/Lz85Gfn4/i4mJ4eHjQM+cJIe2OzofzmZmZOHfunMr3z7t06YLVq1djxIgRBg2OEEJMnc57okKhENXV1WrlNTU1sLa2NkhQhJgjSz1cJc3TOYm+/vrrmDlzJnJycsAYA2MM586dw6xZs/DGG28YI0bSQvSfmhDj0zmJbty4EZ6enggICICNjQ1sbGwwYsQIeHl54csvvzRGjIQQYrJ0Pidqb2+Pf//737h16xZ3i1P//v3h5eVl8OAIIcTUteg+UQDw8vKixEnI/6NTJ7qxpPtpdT6cnzhxItasWaNWvnbtWrzzzjsGCYoYFv0HJ8R4dE6ip0+fxmuvvaZWPnbsWJw+fdogQRFCiLnQOYk2dSuTQCDgnjVESHtCe/otYyl/N52TqI+PD/bv369WnpKSAm9vb4MERQzPUlZYQkyNzheWlixZgrfeegu3b9/G6NGjAQDp6enYt28fDhw4YPAACSHElOmcRMePH49Dhw5h5cqV+O6772BrawtfX1+cOHECr776qjFiJMRk0R4+adEtTuPGjcO4cZZxewIhpO1Ywq1OLb5PNC8vT2U+0SFDhhgsKGIclrDCEmJqdE6i9+/fR1hYGDIyMmBvbw8AqKysxKhRo5CSkoKuXbsaOkZCCDFZOl+dj46ORnV1Na5evYqKigpUVFTgypUrkMlkNJ8oaVfofKhhmPvfUec90dTUVJw4cQL9+/fnyry9vZGUlIQxY8YYNDhCCDF1Ou+JKpVKCAQCtXKBQAClUmmQoJqTlJQEd3d32NjYwN/fH7m5uc22P3DgAPr16wcbGxv4+Pjg559/VqlnjCEuLg4uLi6wtbVFUFAQbt68acwhtClz3+oTYmp0TqKjR4/Gxx9/jJKSEq7s3r17mD9/PgIDAw0a3NP279+PmJgYLF26FPn5+Rg0aBAkEgnu37+vsX1WVhYmT56MGTNm4OLFiwgNDUVoaCiuXLnCtVm7di02btyIrVu3IicnBx06dIBEIsGjR4+MOhZivmhDZHjm/DfVOYlu3rwZMpkM7u7u8PT0hKenJzw8PCCTybBp0yZjxMhZv349IiMjERERAW9vb2zduhUikQg7duzQ2P7LL79ESEgIFi5ciP79+yMxMREvvPACNm/eDODJXuiGDRvw2WefYcKECfD19cXu3btRUlKCQ4cOGXUshBDLoHMSdXNzQ35+Po4cOYJ58+Zh3rx5+Pnnn5Gfn4/u3bsbI0YAQH19PfLy8hAUFMSV8fl8BAUFITs7W+My2dnZKu0BQCKRcO2LiooglUpV2nTq1An+/v5N9mkJzHmrT4ip0fnC0u7duzFp0iQEBwcjODiYK6+vr0dKSgqmTZtm0AAb/fHHH2hoaICzs7NKubOzM27cuKFxGalUqrG9VCrl6hvLmmqjiVwuh1wu5943Trwi5DMoFIonP1sxteVaWtdYb8i6xt+ni8ZlWrKsOWlunAPjj0Fopd/nAZjG+iHkM5V/de2zJbE2V9f3H4dxJV6i8ffpw9jrK48xpvmv1AQrKyuUlpbCyclJpby8vBxOTk5oaGgwaICNSkpK0K1bN2RlZSEgIIArX7RoETIzM5GTk6O2jLW1NZKTkzF58mSu7KuvvkJCQgLKysqQlZWFESNGoKSkBC4uLlybd999FzweT+NEKwAQHx+PhIQEtfK9e/dCJBLpM0xCiIHV1dVhypQpqKqqgp2dncH713lPlDEGHo+nVn737l106tTJIEFp4ujoCCsrK5SVlamUl5WVQSwWa1xGLBY3277x37KyMpUkWlZWhsGDBzcZS2xsLGJiYrj3MpkMbm5uGDVqFLp06aLTuEzBwPhjamWNewR/rRPyGRKHKhEcHAyBQKBxucZlW7tOl3E8q+6v4xyy4qTGZSyBQqFAWloa93maCkOvH5nRowwWmyZaJ9EhQ4aAx+OBx+MhMDAQzz33n0UbGhpQVFSEkJAQowQJPNmr9PPzQ3p6OkJDQwE8ud0qPT0dUVFRGpcJCAhAeno65s2bx5WlpaVxe7IeHh4Qi8VIT0/nkqZMJkNOTg5mz57dZCxCoRBCoVCtXCAQmNTKqC15g/pGsXEcTdUJBAKNdY31rV3XXKwtqWvqd5rj5/ssprbeFq54XeN5e33XD2PROok2Jq6CggJIJBJ07NiRq7O2toa7uzsmTpxo8AD/KiYmBuHh4Rg6dCiGDRuGDRs2oLa2FhEREQCAadOmoVu3bli1ahUA4OOPP8arr76KL774AuPGjUNKSgouXLiAf/3rXwAAHo+HefPmYfny5ejduzc8PDywZMkSuLq6cuMlpBHNO0A00TqJLl26FADg7u6OSZMmwcbGxmhBNWXSpEl48OAB4uLiIJVKMXjwYKSmpnIXhoqLi8Hn/+eGgxdffBF79+7FZ599hk8//RS9e/fGoUOHMHDgQK7NokWLUFtbi5kzZ6KyshIvvfQSUlNT22R8hBDzo/M50fDwcGPEobWoqKgmD98zMjLUyt55551mH6DH4/GwbNkyLFu2zFAhEkLaEZ3vE+Xz+bCysmryRYglokP51mVOf2+d90QPHjyocnVeoVDg4sWLSE5O1njbDyGEWDKdk6imCy5vv/02BgwYgP3792PGjBmGiIu0ojurx9G3mAhpIZ0P55syfPhwpKenG6o7QkyGOR1aWhJz+bsbJIk+fPgQGzduRLdu3QzRHSGEmA2dD+c7d+6sck6UMYbq6mrY2tpiz549Bg2OtB46pCemyBzWS52T6IYNG1Te8/l8dO3aFf7+/rh3756h4iLEJJjLISVpO3rfJ1pdXY19+/Zh6dKluHDhgtEmICGEEFPU4nOip0+fRnh4OFxcXLBu3TqMGjUK586dM2RspJXRXhcxRaa+Xuq0JyqVSrFr1y58/fXXkMlkePfddyGXy3Ho0CF4e3sbK0ZCCDFZWu+Jjh8/Hn379sXly5exYcMGlJSUGP1xIIQQYuq0TqJHjx7FjBkzkJCQgHHjxtFXPC2UqR86tQZLmjPUUpjyeql1Ej1z5gyqq6vh5+cHf39/bN68GX/88YcxYyOEEJOndRIdPnw4tm3bhtLSUvzXf/0XUlJS4OrqCqVSibS0NFRXVxszTkIIMUk6X53v0KEDPvjgA5w5cwa//PILFixYgNWrV8PJyQlvvPGGMWIkrcyUD52MrT2P3RyY4uej19c++/bti7Vr1+Lu3bvYt2+foWIihBCzYZDvzltZWSE0NBQ//vijIbojhJAmmdreqMFmcSLE3Jnaf05iHiiJEkKIHiiJkma1l72z9jJOS2FKnxclUUII0YPZJNGKigpMnToVdnZ2sLe3x4wZM1BTU9Ns++joaPTt2xe2trbo0aMHPvroI1RVVam04/F4aq+UlBRjD8esmNJW3xgsfXyWylQ+N52nwmsrU6dORWlpKdLS0qBQKBAREYGZM2di7969GtuXlJSgpKQE69atg7e3N3777TfMmjULJSUl+O6771Ta7ty5EyEhIdx7e3t7Yw6FEGJBzCKJXr9+HampqTh//jyGDh0KANi0aRNee+01rFu3Dq6urmrLDBw4EN9//z333tPTEytWrMB7772Hx48f47nn/jN0e3t7iMVi4w+EEGJQpjDzvVkczmdnZ8Pe3p5LoAAQFBQEPp+PnJwcrfupqqqCnZ2dSgIFgLlz58LR0RHDhg3Djh07wBgzWOyWwlQOnQgxNWaxJyqVSuHk5KRS9txzz8HBwQFSqVSrPv744w8kJiZi5syZKuXLli3D6NGjIRKJcPz4ccyZMwc1NTX46KOPmuxLLpdDLpdz72UyGQBAoVBAoVBoOyyzI+Q/2bg0jlFopXljo1AoWr2uqXi0qWuq3JI/S8ByxnkzcYxW64ex8Fgb7nYtXrwYa9asabbN9evXcfDgQSQnJ6OwsFClzsnJCQkJCZg9e3azfchkMgQHB8PBwQE//vgjBAJBk23j4uKwc+dO/P777022iY+PR0JCglr53r17IRKJmo2FENK66urqMGXKFO5I1NDaNIk+ePAA5eXlzbbp1asXvvnmGyxYsAB//vknV/748WPY2NjgwIEDePPNN5tcvrq6GhKJBCKRCIcPH4aNjU2zv+/IkSN4/fXX8ejRIwiFQo1tNO2Jurm5obS0FF26dGm2f3OmUCiQlpaG4OBgCAQCDIw/prHdlXhJq9cB0FjfVF1zc4Y+PU5LZWnjbGr9yIweChcXF6Ml0TY9nO/atSu6du36zHYBAQGorKxEXl4e/Pz8AAAnT56EUqmEv79/k8vJZDJIJBIIhUL8+OOPz0ygAFBQUIDOnTs3mUABQCgUaqwXCAQWsTI+S+M45Q28Jutbuw6AxnpNddqe321vn6e5K1zxusaLTMYem1lcWOrfvz9CQkIQGRmJ3NxcnD17FlFRUQgLC+OuzN+7dw/9+vVDbm4ugCcJdMyYMaitreWeCSWVSiGVSrknkv7000/Yvn07rly5glu3bmHLli1YuXIloqOj22yshJCWa4sLoGZxYQkA9uzZg6ioKAQGBoLP52PixInYuHEjV69QKFBYWIi6ujoAQH5+Pnfl3svLS6WvoqIiuLu7QyAQICkpCfPnzwdjDF5eXli/fj0iIyNbb2CkVdFdBsTQzCaJOjg4NHljPQC4u7ur3Jo0cuTIZ96qFBISonKTPSHE/LX2vaNmcThPTJO57dWZW7zEPFASJYRYnNbcYFISJXoxl707c4mTmB9KokRvlKCIKWqt9ZKSKCHEYrVGIqUkSgzCFPdGTTEmYnkoiRKDMaWkZUqxEMtGSZQQQvRASZQYlCnsAZpCDKT9oCRKjKKtEhklUNLaKIkSo2nthEYJlLQFSqLEqCixEUtHSZQYnTETKSVp0tYoiZJWYYxkRwmUmAJKoqTVNCY9fZPfndXjKIESk2E284kSy9KYBHWZ95ESJzFFlERJm3o6MVKiJOaGDucJIUQPlEQJIUQPlEQJIUQPlEQJIUQPlEQJIUQPZpNEKyoqMHXqVNjZ2cHe3h4zZsxATU1Ns8uMHDkSPB5P5TVr1iyVNsXFxRg3bhxEIhGcnJywcOFCPH782JhDIYRYELO5xWnq1KkoLS1FWloaFAoFIiIiMHPmzGafRQ8AkZGRWLZsGfdeJBJxPzc0NGDcuHEQi8XIyspCaWkppk2bBoFAgJUrVxptLIQQy2EWSfT69etITU3F+fPnMXToUADApk2b8Nprr2HdunVwdXVtclmRSASxWKyx7vjx47h27RpOnDgBZ2dnDB48GImJifjkk08QHx8Pa2tro4yHEGI5zCKJZmdnw97enkugABAUFAQ+n4+cnBy8+eabTS67Z88efPPNNxCLxRg/fjyWLFnC7Y1mZ2fDx8cHzs7OXHuJRILZs2fj6tWrGDJkiMY+5XI55HI5976qqgrAk1MOlkyhUKCurg7l5eUQCARtHY7R0DgtS+P/S8aYUfo3iyQqlUrh5OSkUvbcc8/BwcEBUqm0yeWmTJmCnj17wtXVFZcvX8Ynn3yCwsJCHDx4kOv3rwkUAPe+uX5XrVqFhIQEtfI+ffpoPSZCSOsqLy9Hp06dDN5vmybRxYsXY82aNc22uX79eov7nzlzJvezj48PXFxcEBgYiNu3b8PT07PF/cbGxiImJoZ7X1lZiZ49e6K4uNgoH5KpkMlkcHNzw++//w47O7u2DsdoaJyWpaqqCj169ICDg4NR+m/TJLpgwQJMnz692Ta9evWCWCzG/fv3VcofP36MioqKJs93auLv7w8AuHXrFjw9PSEWi5Gbm6vSpqysDACa7VcoFEIoFKqVd+rUyaJXxkZ2dnY0TgvSXsbJ5xvnZqQ2TaJdu3ZF165dn9kuICAAlZWVyMvLg5+fHwDg5MmTUCqVXGLURkFBAQDAxcWF63fFihW4f/8+d7ogLS0NdnZ28Pb21nE0hJD2yCzuE+3fvz9CQkIQGRmJ3NxcnD17FlFRUQgLC+OuzN+7dw/9+vXj9ixv376NxMRE5OXl4c6dO/jxxx8xbdo0vPLKK/D19QUAjBkzBt7e3nj//fdx6dIlHDt2DJ999hnmzp2rcU+TEELUMDNRXl7OJk+ezDp27Mjs7OxYREQEq66u5uqLiooYAHbq1CnGGGPFxcXslVdeYQ4ODkwoFDIvLy+2cOFCVlVVpdLvnTt32NixY5mtrS1zdHRkCxYsYAqFQqfYHj16xJYuXcoePXqk9zhNGY3TstA4DYPHmJGu+xNCSDtgFofzhBBiqiiJEkKIHiiJEkKIHiiJEkKIHiiJ6ikpKQnu7u6wsbGBv7+/2s375iY+Pl5t+sB+/fpx9Y8ePcLcuXPRpUsXdOzYERMnTuS+oGDKTp8+jfHjx8PV1RU8Hg+HDh1SqWeMIS4uDi4uLrC1tUVQUBBu3ryp0qYl0zG2tmeNc/r06Wqfb0hIiEobcxjnqlWr8Le//Q3PP/88nJycEBoaisLCQpU22qyrhpgKk5KoHvbv34+YmBgsXboU+fn5GDRoECQSidq3q8zNgAEDUFpayr3OnDnD1c2fPx8//fQTDhw4gMzMTJSUlOCtt95qw2i1U1tbi0GDBiEpKUlj/dq1a7Fx40Zs3boVOTk56NChAyQSCR49esS1mTp1Kq5evYq0tDQcPnwYp0+fVvlqsSl41jgBICQkROXz3bdvn0q9OYwzMzMTc+fOxblz57jpMceMGYPa2lquzbPW1capMOvr65GVlYXk5GTs2rULcXFxugVjlBun2olhw4axuXPncu8bGhqYq6srW7VqVRtGpZ+lS5eyQYMGaayrrKxkAoGAHThwgCu7fv06A8Cys7NbKUL9AWA//PAD916pVDKxWMw+//xzrqyyspIJhUK2b98+xhhj165dYwDY+fPnuTZHjx5lPB6P3bt3r9Vi18XT42SMsfDwcDZhwoQmlzHHcTLG2P379xkAlpmZyRjTbl39+eefGZ/PZ1KplGuzZcsWZmdnx+Ryuda/m/ZEW6i+vh55eXkICgriyvh8PoKCgpCdnd2Gkenv5s2bcHV1Ra9evTB16lQUFxcDAPLy8qBQKFTG3K9fP/To0cOsx1xUVASpVKoyrk6dOsHf358b17OmYzQnGRkZcHJyQt++fTF79myUl5dzdeY6zsbpKBsnGdFmXW1qKkyZTIarV69q/bspibbQH3/8gYaGBo1T6TU3jZ6p8/f3x65du5CamootW7agqKgIL7/8MqqrqyGVSmFtbQ17e3uVZcx9zI2xN/dZtnQ6RlMTEhKC3bt3Iz09HWvWrEFmZibGjh2LhoYGAOY5TqVSiXnz5mHEiBEYOHAgAGi1rrZ0KsynmcV8oqT1jB07lvvZ19cX/v7+6NmzJ7799lvY2tq2YWTEEMLCwriffXx84OvrC09PT2RkZCAwMLANI2u5uXPn4sqVKyrn7lsT7Ym2kKOjI6ysrNSu9pWVlek0PZ+ps7e3R58+fXDr1i2IxWLU19ejsrJSpY25j7kx9uY+S0NNx2hqevXqBUdHR9y6dQuA+Y0zKioKhw8fxqlTp9C9e3euXJt1VSwWa/zMG+u0RUm0haytreHn54f09HSuTKlUIj09HQEBAW0YmWHV1NTg9u3bcHFxgZ+fHwQCgcqYCwsLUVxcbNZj9vDwgFgsVhmXTCZDTk4ON66/TsfYqCXTMZqau3fvory8XGV6SHMYJ2MMUVFR+OGHH3Dy5El4eHio1GuzrgYEBOCXX35R2Wi0aCpMw1wba59SUlKYUChku3btYteuXWMzZ85k9vb2Klf7zM2CBQtYRkYGKyoqYmfPnmVBQUHM0dGR3b9/nzHG2KxZs1iPHj3YyZMn2YULF1hAQAALCAho46ifrbq6ml28eJFdvHiRAWDr169nFy9eZL/99htjjLHVq1cze3t79u9//5tdvnyZTZgwgXl4eLCHDx9yfYSEhLAhQ4awnJwcdubMGda7d282efLkthqSRs2Ns7q6mv39739n2dnZrKioiJ04cYK98MILrHfv3iozHJnDOGfPns06derEMjIyWGlpKfeqq6vj2jxrXX38+DEbOHAgGzNmDCsoKGCpqamsa9euLDY2VqdYKInqadOmTaxHjx7M2tqaDRs2jJ07d66tQ9LLpEmTmIuLC7O2tmbdunVjkyZNYrdu3eLqHz58yObMmcM6d+7MRCIRe/PNN1lpaWkbRqydU6dOMQBqr/DwcMbYk9uclixZwpydnZlQKGSBgYGssLBQpY9nTcdoCpobZ11dHRszZgzr2rUrEwgErGfPniwyMlJto28O49Q0RgBs586dXBtt1lVDTIVJU+ERQoge6JwoIYTogZIoIYTogZIoIYTogZIoIYTogZIoIYTogZIoIYTogZIoIYTogZIoIYTogZIosVjTp09HaGhoW4dBLBwlUUII0QMlUdIurV+/Hj4+PujQoQPc3NwwZ84ctYexbdu2DW5ubhCJRHjzzTexfv16lUl+L126hFGjRuH555+HnZ0d/Pz8cOHChVYeCWlrlERJu8Tn87Fx40ZcvXoVycnJOHnyJBYtWsTVnz17FrNmzcLHH3+MgoICBAcHY8WKFSp9TJ06Fd27d8f58+eRl5eHxYsXQyAQtPZQSBujCUiIxZo+fToqKyvVHhusyXfffYdZs2bhjz/+APBkBviamhocPnyYa/Pee+/h8OHD3ES/dnZ22LRpE8LDw40RPjETtCdK2qUTJ04gMDAQ3bp1w/PPP4/3338f5eXlqKurA/BkAt9hw4apLPP0+5iYGHz44YcICgrC6tWrcfv27VaLn5gOSqKk3blz5w5ef/11+Pr64vvvv0deXh73nPb6+nqt+4mPj8fVq1cxbtw4nDx5Et7e3vjhhx+MFTYxUZRESbuTl5cHpVKJL774AsOHD0efPn1QUlKi0qZv3744f/68StnT7wGgT58+mD9/Po4fP4633noLO3fuNGrsxPTQ0z6JRauqqkJBQYFKmaOjIxQKBTZt2oTx48fj7Nmz2Lp1q0qb6OhovPLKK1i/fj3Gjx+PkydP4ujRo+DxeACAhw8fYuHChXj77bfh4eGBu3fv4vz585g4cWJrDY2YCn2n6SfEVIWHh2t8hMSMGTPY+vXrmYuLC7O1tWUSiYTt3r2bAWB//vknt/y//vUv1q1bN2Zra8tCQ0PZ8uXLmVgsZowxJpfLWVhYGHNzc2PW1tbM1dWVRUVFqTyTibQPdHWeEC1FRkbixo0b+J//+Z+2DoWYEDqcJ6QJ69atQ3BwMDp06ICjR48iOTkZX331VVuHRUwM7YkS0oR3330XGRkZqK6uRq9evRAdHY1Zs2a1dVjExFASJYQQPdAtToQQogdKooQQogdKooQQogdKooQQogdKooQQogdKooQQogdKooQQogdKooQQogdKooQQoof/A/UbJXAd6aLAAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 300x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_raw = pd.read_csv('dataset/weather.csv')\n",
    "scaler = StandardScaler()\n",
    "cols_data = df_raw.columns[1:]\n",
    "df_data = df_raw[cols_data]\n",
    "\n",
    "train_data = df_data[:7*len(df_data)//10]\n",
    "scaler.fit(train_data.values)\n",
    "data = scaler.transform(df_data.values)\n",
    "\n",
    "train_data = data[:7*len(df_data)//10]\n",
    "test_data = data[9*len(df_data)//10:9]\n",
    "\n",
    "\n",
    "acf_values = acf(train_data[:,16], nlags=200)\n",
    "\n",
    "\n",
    "lags = np.arange(len(acf_values))\n",
    "plt.figure(figsize=(3, 2.5))\n",
    "plt.bar(lags, acf_values)\n",
    "\n",
    "plt.xlim([0, 200])\n",
    "plt.ylim([-0.5, 1])\n",
    "\n",
    "plt.xlabel(\"Lags\", fontsize=10)\n",
    "plt.ylabel(\"Autocorrelation\", fontsize=10)\n",
    "\n",
    "plt.grid(True)\n",
    "plt.savefig('acf/weather[16].pdf', bbox_inches='tight')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0e699ef1-6640-4d44-97c9-27e77285945f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "58302ce4-85f2-4533-911a-ec4d33f6b28a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "8e8682f8-b78c-4af7-9f66-9782d16d7fd0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "scaler = StandardScaler()\n",
    "df_raw = []\n",
    "with open('dataset/solar_AL.txt', \"r\", encoding='utf-8') as f:\n",
    "    for line in f.readlines():\n",
    "        line = line.strip('\\n').split(',')\n",
    "        data_line = np.stack([float(i) for i in line])\n",
    "        df_raw.append(data_line)\n",
    "df_raw = np.stack(df_raw, 0)\n",
    "df_raw = pd.DataFrame(df_raw)\n",
    "cols_data = df_raw.columns[1:]\n",
    "df_data = df_raw[cols_data]\n",
    "\n",
    "train_data = df_data[:7*len(df_data)//10]\n",
    "scaler.fit(train_data.values)\n",
    "data = scaler.transform(df_data.values)\n",
    "\n",
    "train_data = data[:7*len(df_data)//10]\n",
    "test_data = data[9*len(df_data)//10:9]\n",
    "\n",
    "\n",
    "acf_values = acf(train_data[:,16], nlags=200)\n",
    "\n",
    "\n",
    "lags = np.arange(len(acf_values))\n",
    "plt.figure(figsize=(3, 2.5))\n",
    "plt.bar(lags, acf_values)\n",
    "\n",
    "plt.xlim([0, 200])\n",
    "plt.ylim([-0.6, 1])\n",
    "\n",
    "plt.xlabel(\"Lags\", fontsize=10)\n",
    "plt.ylabel(\"Autocorrelation\", fontsize=10)\n",
    "\n",
    "plt.grid(True)\n",
    "plt.savefig('acf/solar[16].pdf', bbox_inches='tight')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "89df69d3-b092-47f7-a491-5b5609df5518",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
